Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.02.2014, 22:46
Интересующийся
Отправить личное сообщение для user999 Посмотреть профиль Найти все сообщения от user999
 
Регистрация: 24.02.2014
Сообщений: 13

Открытие нужной вкладки на форме обратной связи
Добрый день, есть форма обратной связи на сайте. Открывается слой по клику на ссылку
Код:
<a id="callback" href="javascript:void(0);">ссылка</a>
Код такой:
$(document).ready(function() {
	$('#callback, #callback1, #callback2, #callback3, #callback4, #callback5, #callback6').click(function() {
		$('#callbacks').show();
	});
	$('#close_').click(function() {
		$('#callbacks').hide();
	});
});


На форме обратной связи есть вкладки, ссылки, при нажатии на которые, скрывается один слой с инпутами и появляется другой слой с инпутами. Это разные типы обратной связи заказ, обратный звонок, вопрос и отзыв. Соответственно при открытии формы активна первая вкладка по умолчанию: заказ
Код:
<ul class="taabs_container_cb">
	<li class="taab_cb current-tab" style=""><div><a href="#" id="show_sl1">Заказ</a></div></li>
	<li class="taab_cb"><div><a href="#" id="show_sl2">Звонок</a></div></li>
	<li class="taab_cb"><div><a href="#" id="show_sl3">Вопрос</a></div></li>
	<li class="taab_cb"><div><a href="#" id="show_sl4">Отзыв</a></div></li>
</ul>
и что бы отправить отзыв нужно сначала нажать на ссылку (вкладку) отзыв.

Вопрос вот в чем. Как с определенных ссылок передавать параметр, что бы открывалась форма с нужной вкладкой. Например, нажав на ссылку: "оставить отзыв" открылась эта форма с уже активной вкладкой отзыв, а нажав на ссылку "заказать обратный звонок" форма с активной вкладкой "звонок"?
Изображения:
Тип файла: jpg Форма.jpg (13.5 Кб, 8 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 25.02.2014, 08:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,277

Сообщение от user999
Как с определенных ссылок передавать параметр
Так в том же УРЛ и передавай...

<URL>?<prm1>=<val1>&<prm2>=<val2>
Ответить с цитированием
  #3 (permalink)  
Старый 25.02.2014, 13:19
Интересующийся
Отправить личное сообщение для user999 Посмотреть профиль Найти все сообщения от user999
 
Регистрация: 24.02.2014
Сообщений: 13

Хорошо, но что бы не трогать УРЛ и оставить href="javascript:void(0);" Т.к. в статье http://javascript.ru/unsorted/why_href_js_is_bad рекомендовано так делать

Как передать параметр по onclick или активировать функцию
Код:
$("a#show_sl2").click(function() {
которая у меня отвечает за переключение вкладок??
Ответить с цитированием
  #4 (permalink)  
Старый 25.02.2014, 13:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,277

Сообщение от user999
Как передать параметр по onclick
Да так и передать...

$("a#show_sl2").click(function() {
   test (1,2,3);
});
function test(a,b,c) {
   alert('a='+a+', '+'b='+b+', '+'c='+c);
};
Ответить с цитированием
  #5 (permalink)  
Старый 25.02.2014, 13:56
Интересующийся
Отправить личное сообщение для user999 Посмотреть профиль Найти все сообщения от user999
 
Регистрация: 24.02.2014
Сообщений: 13

Извините, я туплю и с первого раза не понимаю
<!--- Этот код отвечает за открытие слоя с формой -->
<script type="text/javascript">
$(document).ready(function() {
	$('#callback, #callback1, #callback2, #callback3, #callback4, #callback5, #callback6').click(function() {
		$('#callbacks').show();
	});
	$('#close_').click(function() {
		$('#callbacks').hide();
	});
});
</script>

<!--- Этот код за переключение вкладок -->
	$("a#show_sl1").click(function() {
		if ($("div#sl1").is(':hidden')) {
			$("div#sl1").slideDown(500);
			$("div#sl2").slideUp(500);
			$("div#sl3").slideUp(500);
			$("div#sl4").slideUp(500);
			$("#sl").val('sl1');
		}
	});
	$("a#show_sl2").click(function() {
		if ($("div#sl2").is(':hidden')) {
			$("div#sl1").slideUp(500);
			$("div#sl2").slideDown(500);
			$("div#sl3").slideUp(500);
			$("div#sl4").slideUp(500);
			$("#sl").val('sl2');
		}
	});
	$("a#show_sl3").click(function() {
		if ($("div#sl3").is(':hidden')) {
			$("div#sl1").slideUp(500);
			$("div#sl2").slideUp(500);
			$("div#sl3").slideDown(500);
			$("div#sl4").slideUp(500);
			$("#sl").val('sl3');
		}
	});
	$("a#show_sl4").click(function() {
		if ($("div#sl4").is(':hidden')) {
			$("div#sl1").slideUp(500);
			$("div#sl2").slideUp(500);
			$("div#sl3").slideUp(500);
			$("div#sl4").slideDown(500);
			$("#sl").val('sl4');
		}
	});

	$(".taabs_container_cb a").click(function() {
		if (!$(this).parents("li").hasClass("taab_cb current-tab")) {
			var pnum = $(this).parents("li").index();
			$(".taabs_container_cb li.taab_cb.current-tab").removeClass(" current-tab");
			$(this).parents("li").addClass("taab_cb current-tab");
		} 
		return false;
	});

<!--- Это ссылка на форму -->
<a id="callback" href="javascript:void(0);" >Заказать звонок или отправить письмо</a>

<!--- Это  кусок кода формы -->
<div id="callbacks">
<ul class="taabs_container_cb">
	<li class="taab_cb current-tab" style=""><div><a href="#" id="show_sl1">Заказ</a></div></li>
	<li class="taab_cb"><div><a href="#" id="show_sl2">Звонок</a></div></li>
	<li class="taab_cb"><div><a href="#" id="show_sl3">Вопрос</a></div></li>
	<li class="taab_cb"><div><a href="#" id="show_sl4">Отзыв</a></div></li>
</ul>


Так что вставить в onclick????
Ответить с цитированием
  #6 (permalink)  
Старый 25.02.2014, 14:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,277

Сообщение от user999
Так что вставить в onclick?
Ты хоть какой-то действующий пример сделай...
Ответить с цитированием
  #7 (permalink)  
Старый 25.02.2014, 14:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,277

Сообщение от user999 Посмотреть сообщение
<!--- Этот код за переключение вкладок -->
	$("a#show_sl1").click(function() {
		if ($("div#sl1").is(':hidden')) {
			$("div#sl1").slideDown(500);
			$("div#sl2").slideUp(500);
			$("div#sl3").slideUp(500);
			$("div#sl4").slideUp(500);
			$("#sl").val('sl1');
		}
	});
	$("a#show_sl2").click(function() {
		if ($("div#sl2").is(':hidden')) {
			$("div#sl1").slideUp(500);
			$("div#sl2").slideDown(500);
			$("div#sl3").slideUp(500);
			$("div#sl4").slideUp(500);
			$("#sl").val('sl2');
		}
	});
	$("a#show_sl3").click(function() {
		if ($("div#sl3").is(':hidden')) {
			$("div#sl1").slideUp(500);
			$("div#sl2").slideUp(500);
			$("div#sl3").slideDown(500);
			$("div#sl4").slideUp(500);
			$("#sl").val('sl3');
		}
	});
	$("a#show_sl4").click(function() {
		if ($("div#sl4").is(':hidden')) {
			$("div#sl1").slideUp(500);
			$("div#sl2").slideUp(500);
			$("div#sl3").slideUp(500);
			$("div#sl4").slideDown(500);
			$("#sl").val('sl4');
		}
	});
Это вообще жуть!
Ответить с цитированием
  #8 (permalink)  
Старый 25.02.2014, 16:22
Интересующийся
Отправить личное сообщение для user999 Посмотреть профиль Найти все сообщения от user999
 
Регистрация: 24.02.2014
Сообщений: 13

А чем этот код не действующий, просто кода на сайте много, часть его сюда переписал.

А по поводу переключения вкладок, я не претендую на самый лучший код, буду рад если вы предложите более оптимальный вариант.
Ответить с цитированием
  #9 (permalink)  
Старый 25.02.2014, 16:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,277

Сообщение от user999
просто кода на сайте много
А много и не нужно...
Достаточно сделать простой тестовый пример на котором можно будет показать что и как...
Ответить с цитированием
  #10 (permalink)  
Старый 25.02.2014, 17:38
Интересующийся
Отправить личное сообщение для user999 Посмотреть профиль Найти все сообщения от user999
 
Регистрация: 24.02.2014
Сообщений: 13

Хорошо, вот сделал в песочнице: http://learn.javascript.ru/play/BCsn3b

Как сделать, что бы при нажатии на ссылку открывалась, например сразу 3-я вкладка, а не первая?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма обратной связи js Vaa Общие вопросы Javascript 1 17.01.2014 18:43
нужно заставить одновременно работать слайдер и модальное окно обратной связи kvant355 Javascript под браузер 3 22.07.2013 16:34
Форма обратной связи с аттачем 2х изображений. Джейн Работа 2 04.11.2011 00:19
ajax форма обратной связи anton-mgn AJAX и COMET 7 15.09.2011 20:42
Загрузка изображений в форме обратной связи online Элементы интерфейса 3 15.02.2011 15:49